Bug 544684 - Win64 issue, window handles are assumed to be 32-bit
authorTor Lillqvist <tml@novell.com>
Mon, 4 Aug 2008 22:35:16 +0000 (22:35 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Mon, 4 Aug 2008 22:35:16 +0000 (22:35 +0000)
2008-08-05  Tor Lillqvist  <tml@novell.com>

Bug 544684 - Win64 issue, window handles are assumed to be 32-bit

* gdk/gdkdnd.h
* gdk/gdkdnd.c
* gdk/win32/gdkdnd-win32.c
* gdk/x11/gdkdnd-x11.c: Change return value and type of window id
from guint32 to GdkNativeWindow for
gdk_drag_get_protocol_for_display() and
gdk_drag_get_protocol(). This is not an API break on existing
platforms, as GdkNativeWindow has been guint32 for them
already.

svn path=/trunk/; revision=20988

gdk/gdkdnd.c
gdk/gdkdnd.h
gdk/win32/gdkdnd-win32.c
gdk/x11/gdkdnd-x11.c

index 1d671c48ce819766c0e2d57a647938f69f3b1d6f..64336600b9a0adf24fb162c6cab336bf5099b836 100644 (file)
@@ -61,17 +61,17 @@ gdk_drag_find_window (GdkDragContext  *context,
 
 /**
  * gdk_drag_get_protocol:
- * @xid: the X id of the destination window.
+ * @xid: the windowing system id of the destination window.
  * @protocol: location where the supported DND protocol is returned.
  * 
  * Finds out the DND protocol supported by a window.
  * 
- * Return value: the X id of the window where the drop should happen. This 
- *    may be @xid or the X id of a proxy window, or None if @xid doesn't
- *    support Drag and Drop.
+ * Return value: the windowing system specific id for the window where
+ *    the drop should happen. This may be @xid or the id of a proxy
+ *    window, or zero if @xid doesn't support Drag and Drop.
  **/
-guint32
-gdk_drag_get_protocol (guint32          xid,
+GdkNativeWindow
+gdk_drag_get_protocol (GdkNativeWindow  xid,
                       GdkDragProtocol *protocol)
 {
   return gdk_drag_get_protocol_for_display (gdk_display_get_default (), xid, protocol);
index ae8362fbd629866af5aae16f7d337b3e19d8d9e8..b9f83352f52b48452b06170f3c344f80889726c3 100644 (file)
@@ -130,9 +130,10 @@ GdkAtom          gdk_drag_get_selection (GdkDragContext   *context);
 GdkDragContext * gdk_drag_begin      (GdkWindow      *window,
                                      GList          *targets);
 
-guint32 gdk_drag_get_protocol_for_display (GdkDisplay       *display,
-                                          guint32           xid,
-                                          GdkDragProtocol  *protocol);
+GdkNativeWindow gdk_drag_get_protocol_for_display (GdkDisplay       *display,
+                                                  GdkNativeWindow   xid,
+                                                  GdkDragProtocol  *protocol);
+
 void    gdk_drag_find_window_for_screen   (GdkDragContext   *context,
                                           GdkWindow        *drag_window,
                                           GdkScreen        *screen,
@@ -142,8 +143,9 @@ void    gdk_drag_find_window_for_screen   (GdkDragContext   *context,
                                           GdkDragProtocol  *protocol);
 
 #ifndef GDK_MULTIHEAD_SAFE
-guint32 gdk_drag_get_protocol (guint32           xid,
-                              GdkDragProtocol  *protocol);
+GdkNativeWindow gdk_drag_get_protocol (GdkNativeWindow   xid,
+                                      GdkDragProtocol  *protocol);
+
 void    gdk_drag_find_window  (GdkDragContext   *context,
                               GdkWindow        *drag_window,
                               gint              x_root,
index 86447018230034cc3a30c148058b613437080579..41773a68f13fc3e03226c3faeee70f0c8909f4fc 100644 (file)
@@ -854,7 +854,7 @@ enum_formats_new (void)
 static gboolean
 resolve_link (HWND     hWnd,
              wchar_t *link,
-             guchar **lpszPath)
+             gchar  **lpszPath)
 {
   WIN32_FILE_ATTRIBUTE_DATA wfad;
   HRESULT hres;
@@ -938,7 +938,7 @@ gdk_dropfiles_filter (GdkXEvent *xev,
   HANDLE hdrop;
   POINT pt;
   gint nfiles, i;
-  guchar *fileName, *linkedFile;
+  gchar *fileName, *linkedFile;
   
   if (msg->message == WM_DROPFILES)
     {
@@ -1294,9 +1294,9 @@ gdk_drag_begin (GdkWindow *window,
 #endif
 }
 
-guint32
+GdkNativeWindow
 gdk_drag_get_protocol_for_display (GdkDisplay      *display,
-                                  guint32          xid,
+                                  GdkNativeWindow  xid,
                                   GdkDragProtocol *protocol)
 {
   GdkWindow *window;
@@ -1373,7 +1373,7 @@ gdk_drag_find_window_for_screen (GdkDragContext  *context,
     *dest_window = NULL;
   else
     {
-      *dest_window = gdk_win32_handle_table_lookup (GPOINTER_TO_UINT (a.result));
+      *dest_window = gdk_win32_handle_table_lookup (a.result);
       if (*dest_window)
        {
          *dest_window = gdk_window_get_toplevel (*dest_window);
index 62a2d8c0f594b43175a593fc2cc50106cce69361..4ff2276782d919e2697b941fada7aa101136fa18 100644 (file)
@@ -3001,15 +3001,15 @@ gdk_drag_begin (GdkWindow     *window,
   return new_context;
 }
 
-static guint32
+static GdkNativeWindow
 _gdk_drag_get_protocol_for_display (GdkDisplay      *display,
-                                   guint32          xid,
+                                   GdkNativeWindow  xid,
                                    GdkDragProtocol *protocol,
                                    guint           *version)
 
 {
   GdkWindow *window;
-  guint32 retval;
+  GdkNativeWindow retval;
   g_return_val_if_fail (GDK_IS_DISPLAY (display), None);
 
   base_precache_atoms (display);
@@ -3106,25 +3106,26 @@ _gdk_drag_get_protocol_for_display (GdkDisplay      *display,
     }
 
   *protocol = GDK_DRAG_PROTO_NONE;
-  return None;
+
+  return 0; /* a.k.a. None */
 }
 
 /**
  * gdk_drag_get_protocol_for_display:
  * @display: the #GdkDisplay where the destination window resides
- * @xid: the X id of the destination window.
+ * @xid: the windowing system id of the destination window.
  * @protocol: location where the supported DND protocol is returned.
- * @returns: the X id of the window where the drop should happen. This 
- *     may be @xid or the X id of a proxy window, or None if @xid doesn't
+ * @returns: the windowing system id of the window where the drop should happen. This 
+ *     may be @xid or the id of a proxy window, or zero if @xid doesn't
  *     support Drag and Drop.
  *
  * Finds out the DND protocol supported by a window.
  *
  * Since: 2.2
  */ 
-guint32
+GdkNativeWindow
 gdk_drag_get_protocol_for_display (GdkDisplay      *display,
-                                  guint32          xid,
+                                  GdkNativeWindow  xid,
                                   GdkDragProtocol *protocol)
 {
   return _gdk_drag_get_protocol_for_display (display, xid, protocol, NULL);